package siruna.WE.installwidgets;

import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import siruna.WE.R;
import android.content.Context;
import android.util.Log;

/**
 * Klasse die het afhandelen van downloaden van een nieuwe widget afhandelt.
 * 
 * @author Tim
 * 
 */
public class InstallWidgets {
	// android context
	private Context context;

	/**
	 * constructor
	 * 
	 * @param c
	 *            context, moet doorgegeven worden bij constructie
	 */
	public InstallWidgets(Context c) {
		this.context = c;
	}

	/**
	 * haal de lijst op. De locatie van de server wordt bewaard in het bestand
	 * res\values\resources
	 * 
	 * @return de arraylist met de lijst
	 */
	public ArrayList<HashMap<String, String>> getDownloadList() {
		try {
			URL url = new URL(context.getString(R.string.serverurl));

			// Maak een SAXParser van de SAXPArserFactory.
			SAXParserFactory spf = SAXParserFactory.newInstance();
			SAXParser sp = spf.newSAXParser();

			// maak een the XMLReader
			XMLReader xr = sp.getXMLReader();
			// maak een nieuwe ContentHandler en koppel aan den xml reader
			InstallWidgetsHandler myExampleHandler = new InstallWidgetsHandler();

			xr.setContentHandler(myExampleHandler);

			// Parse het xml-bestand vanop de url.
			xr.parse(new InputSource(url.openStream()));

			// de handler bevat nu de gewenste data
			ParsedInstallWidgetsDataSet parsedExampleDataSet = myExampleHandler
					.getParsedData();

			return parsedExampleDataSet.getItems();

		} catch (Exception e) {
			Log.e("Error", "ServerConnectionError", e);
			return null;
		}
	}
}